﻿using System;

namespace Arch.Common.Mapping
{
    public interface IMapper
    {
        object Map(object obj);
        T Map<T>(object obj);
        void Register(Type first, Type second);
        void Register<TFirst,TSecond>();
        Tuple<TMappingInfo, TMappingInfo> Register<TMappingInfo>(Type first, Type second);
        Tuple<TMappingInfo, TMappingInfo> Register<TFirst, TSecond, TMappingInfo>();
    }
}
